﻿using Refit;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IM.Easy.Core.OAuth
{
    public class OAuthTokenRequest
    {
        /// <summary>
        /// 授权类型，通常为 "authorization_code"。
        /// </summary>
        [AliasAs("grant_type")]
        public string GrantType { get; set; } = "authorization_code";

        /// <summary>
        /// 授权码，从第三方授权服务器获取。
        /// </summary>
        [AliasAs("code")]
        public string Code { get; set; }

        /// <summary>
        /// 客户端ID，标识应用程序的唯一标识符。
        /// </summary>
        [AliasAs("client_id")]
        public string ClientId { get; set; }

        /// <summary>
        /// 重定向URI，授权服务器在用户授权后将回调到此地址。
        /// </summary>
        [AliasAs("redirect_uri")]
        public string RedirectUri { get; set; }

        /// <summary>
        /// 客户端密钥，用于与授权服务器进行安全通信。
        /// </summary>
        [AliasAs("client_secret")]
        public string ClientSecret { get; set; }

        ///// <summary>
        ///// 将参数转换为查询字符串格式。
        ///// </summary>
        ///// <returns>查询字符串格式的参数。</returns>
        //public override string ToString()
        //{
        //    return $"grant_type={GrantType}&code={Code}&client_id={ClientId}&redirect_uri={Uri.EscapeDataString(RedirectUri)}&client_secret={ClientSecret}";
        //}
    }
}
